1. Field of the Invention
This invention relates to the field of encoding and storing moving pictures and audio signals and, in particular, a system for digitally encoding, storing, and displaying a video stream in MPEG format on a personal video recorder (PVR) hard drive in a manner that facilitates play modes other than standard speed, sequential play.
2. Description of the Related Art
Personal Video Recorders (PVRs), also sometimes called Digital Video Recorders (DVRs), are digitally based devices that enable a viewer of television to receive and digitally record video programming, such as TV broadcasts, movie downloads, and the like, for more flexible viewing. For example, PVRs enable a viewer to record defined categories of live television programming over the course of days. The viewer may stipulate that they want to record a series of tennis matches, all nature shows, or all episodes of a particular show over the course of a season. PVRs also enable a person viewing a xe2x80x9clivexe2x80x9d television broadcast to pause viewing and, at a later time, resume viewing the broadcast from the point at which live viewing was paused. A viewer also has the option to skip portions of a broadcast, such as for example commercials, upon reviewing a broadcast by employing a PVR. The recording features of PVRs can be performed when the viewer is away from the PVR so that the viewer can view preferred programs at a time that is convenient.
PVRs can receive either a streaming analog signal in an uncompressed format or a digitally encoded signal, such as an MPEG signal, from a transmission source. If the PVR receives an analog signal such as a television signal in an uncompressed format, the PVR typically digitally encodes the signal, stores the digitally encoded signal in a compressed format, and decodes and presents the signal for subsequent viewing. Similarly, if the PVR receives an already digitally encoded signal, the PVR then stores the signal and decodes and presents the signal for subsequent viewing. PVRs currently typically include 13.6-gigabyte hard disks that offer up to 14 hours of video programming or 27.2-gigabyte disks that offer up to 30 hours of programmable viewing.
One common compression standard used for video streams currently used today is known as MPEG. MPEG is a standard for digitally encoding moving pictures and interleaved audio signals. MPEG facilitates compressing a video stream to reduce the storage capacity and transmission bandwidth required for an MPEG stream as compared to an uncompressed video stream. In a typical video stream, adjacent individual video frames will have much in common with the preceding and subsequent frames. For example, from one individual still frame of a scene to the next, much of the background, the colors, and the luminous intensity will usually remain the same. A relatively small amount of the overall scene will typically change from frame to frame. The compression technique used with MPEG leverages this redundancy of video in both the spatial and temporal dimensions in order to define certain frames with respect to other frames in a dependent or anticipatory manner and thereby reduce the amount of information required to accurately define a video stream.
In particular, the MPEG standard defines three types of frame formats: Intra-coded reference frames (I), Predictive-coded frames (P), and Bi-directionally predictive-coded frames (B). I frames contain all of the information required for a single video frame and are thus independent frames that need no information from other frames either before or after for decoding. On the other hand, P frames are defined with respect to preceding I frames or other P frames. B frames are bi-directionally defined with respect to both preceding and subsequent frames in the MPEG stream. Thus, both P and B frames need information from surrounding frames for decoding; a P or B frame by itself cannot be decoded into a viewable image. The I-, P-, and B- frames are organized into at least one sequence defined by a sequence header and a set of subsequent I, P, and B frames. The sequence header contains display initialization information defining picture size and aspect ratio, frames and bit rate, decoder buffer size, and chroma pixel structure and may contain optional quantizer matrices and/or user data.
While digital video compression schemes, such as MPEG, reduce the storage and transmission bandwidth required for these digital video streams, these compression schemes result in video data that is not readily adaptable to non-standard modes of display. For example, viewers of video images like to be able to use TrickPlay modes of viewing including by way of example: fast forward, reverse play, skip ahead, skip back, etc. Generally, compressed video streams that have inter-frame dependencies, such as MPEG streams, are not readily suited to random access of different frames within the stream as is often required for TrickPlay modes of viewing.
For example, with an MPEG file, fast forward or fast reverse viewing of the full stream is not efficient because such modes of operation would still require the decoding of each of the P and B frames, which, in turn, may require decoding of multiple other frames. Hence, fast forward and fast reverse manners of display are not easily achievable due to the memory and processing required for the decoding of multiple frames that must be accomplished to reassemble the compressed data. Moreover, skipping to a particular segment within a video stream is also complicated by the fact that the particular segment desired may correspond to an interdependent frame which requires the decoding of multiple other frames before the desired frame can be viewed.
Hence, the MPEG compression standard as used to facilitate efficient transfer and storage of digital video data inhibits subsequent flexible viewing of the digital video data. As more flexible viewing of digital video data is highly desirable, several mechanisms for implementing TrickPlay type viewing of compressed video data have been developed.
In one example, the compressed video streams are pre-recorded onto high-density recording media in a manner that facilitates TrickPlay. One example of this is disclosed in U.S. Pat. No. 6,002,834 to Hirabayashi, et al. In Hirabayashi, MPEG files are recorded onto optical disks along with an index table indicating the memory locations of the intra-coded reference (I) frames. The index table can then be subsequently used to implement TrickPlay. While Hirabayashi facilitates the use of TrickPlay with compressed video data, Hirabayashi provides the video data on a fixed recording medium, i.e., an optical disk, wherein the data necessary to implement TrickPlay has been previously recorded.
Video signals are typically provided to PVRs as either uncompressed analog signals or digitally compressed signals such as the signals received via cable or satellite television systems. While some streaming systems have been disclosed that provide video streams with redundant streams to facilitate TrickPlay (See, e.g., U.S. Pat. No. 6,065,050 to De Money), many video streams are provided as analog signals or simple MPEG files that do not have any pre-recorded files or formats for facilitating TrickPlay.
Hence, there is a need for a system for recording compressed video data in a manner that facilitates flexible display of the compressed video data. To this end, there is a need for a system that can receive a stream of video data, such as a cable or satellite television broadcast, via an interface and compress and store the signals so as to be able to implement TrickPlay of the compressed video data without requiring that the compressed video data include pre-encoded data for TrickPlay.
In one aspect, the invention comprises a digital video recording system for storing, retrieving and displaying compressed digital video data. The system comprises a video stream buffer system that receives a stream of digital video data comprising intra-coded reference frames and predictive coded reference frames. The system also comprises a storage subsystem and a storage controller that stores the stream of digital video data into the storage subsystem. The storage controller identifies a start of the intra-coded reference frames and generates an index data structure in the storage subsystem that provides data indicative of the location of at least some of the intra-coded reference frames stored in the storage subsystem. The system also includes a display controller that accesses the index data structure and the video stream in the storage subsystem to display the video stream in a TrickPlay mode. The storage subsystem is integrated into the system such that the storage subsystem is simultaneously logically coupled to both the storage controller and the display controller.
Preferably, the storage controller also identifies the start of the predictive coded reference frames and further generates the index data structure so that the index data structure provides data indicative of the location of at least some of the predictive coded reference frames stored in the storage subsystem. Also, in one embodiment, the storage controller further stores in the index data structure data corresponding to the extent of each frame.
In another aspect, a method of storing, retrieving and displaying compressed digital video data using a personal video recording having an integrated memory storage subsystem and a display is provided. The method comprises receiving a video stream comprising intra-coded reference frames and predictive-coded reference frames and identifying the intra-coded reference frames upon receipt of the video stream. The method further comprises generating an index data structure from the identified intra-coded reference frames and storing the index data structure in the integrated storage subsystem of the personal video recorder. The method further comprises using the index data structure in the integrated storage subsystem of the personal video recorder to cause delivery of selected frames of the stored video stream to the display of the personal video recorder to thereby display the video stream in a TrickPlay mode. In one embodiment, generating the index data structure further comprises storing an extent value indicative of the extent of the data corresponding to the intra-coded reference frames.
In yet another aspect of the invention, the present invention comprises a system for storing, retrieving and displaying digital video data. In this aspect, the system comprises a video stream buffer system that receives a stream of digital video data comprising sequence header data, intra-coded reference frames and predictive-coded reference frames and a storage system. The system also includes a storage controller that stores the stream of digital video data into the storage system, wherein the storage controller generates an index data structure in the storage system as the stream of digital video data is being stored in the storage system, and wherein the index data structure includes data indicative of the location where the intra-coded reference frames are stored in the storage system and the extent of the intra-coded reference frames. The system also includes a display controller that accesses the index data structure and the video stream stored in the storage system to display the video stream in a TrickPlay mode, wherein the display controller uses the extend of the frame to limit access of a selected frame to only the data corresponding to the selected frame to thereby more efficiently access the selected frame and wherein the storage system is integrated into the system such that the storage system is simultaneously logically coupled to both the storage controller and the display controller.